#ifndef ZL_UNITTEST
#define ZL_UNITTEST
#include <stdio.h>
#include <stdlib.h>

namespace zl
{
#define TEST_CASE(NAME)                                      \
	extern void TESTCASE_##NAME();                           \
	namespace zl_unittest_executors                          \
	{                                                        \
	class TESTCASE_RUNNER_##NAME                             \
	{                                                        \
	public:                                                  \
	TESTCASE_RUNNER_##NAME()                                 \
	{                                                        \
	printf(#NAME);                                           \
	printf("\n");                                            \
	TESTCASE_##NAME();                                       \
    }                                                        \
    }TESTCASE_RUNNER_##NAME##_INSTANCE;                      \
    }                                                        \
	void TESTCASE_##NAME()
};

#endif